/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package uniriotec.pm.prova.model;

import java.util.List;

/**
 *
 * @author labccet
 */
public class QuestaoDeProva  {

private Questao questao;
private String numero;//pode ser 1.2, 1.a, 1.2.e
private float valor;//pontuação da questao
private int ordem;//ordem de impressao na prova
private List<OpcaoDeProva> opcoes;
private String gabarito;


   

    public void setQuestao(Questao questao) {
        this.questao = questao;
    }


    public String getGabarito() {
        return gabarito;
    }

    public List<OpcaoDeProva> getOpcoes() {
        return opcoes;
    }

    public Questao getQuestao() {
        return questao;
    }

QuestaoDeProva(Questao questao,String numero, float valor, int ordem){
    this.questao = questao;
    this.numero = numero;
    this.valor = valor ;
    this.ordem = ordem;
    if (questao instanceof QuestaoMultiplaEscolha){
        int ordemOpcao =0;
        char letra;
        //aqui estamos preenchendo a lista de OpcaoDeProva
        for(Opcao op : ((QuestaoMultiplaEscolha)questao).getOpcoes() ){
          letra = new Character((char) (ordemOpcao + 65));
          this.opcoes.add(new OpcaoDeProva(op,letra,ordemOpcao++));
          if (op.equals(((QuestaoMultiplaEscolha)questao).getOpcaoCorreta()))
            this.gabarito=letra+")"+((QuestaoMultiplaEscolha)questao).getOpcaoCorreta().getEnunciado();
        }
         }
        else{
        this.gabarito = ((QuestaoDiscursiva)questao).getRespostaSugerida();
        }

    }



    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

    public int getOrdem() {
        return ordem;
    }

    public void setOrdem(int ordem) {
        this.ordem = ordem;
    }

    public float getValor() {
        return valor;
    }

    public void setValor(float valor) {
        this.valor = valor;
    }


}
